/* entity */
import LoginUser from '@model/entity/LoginUser/LoginUser'
import Tag from '@model/entity/Tag/Tag'

export enum BaseContactTypeEnum {
  Department = 'dept',
  Team = 'team',
  DepartmentOnly = 'dept_only'
}

export interface BaseContactSelectedData {
  users?: LoginUser[]
  depts?: Tag[]
  teams?: Tag[]
}

export interface BaseContactOptions {
  title?: string,
  selected?: LoginUser[] | BaseContactSelectedData
  selectedUser?: LoginUser[],
  selectedTeams?: Tag[],
  selectedDepts?: Tag[],
  max?: number | string,
  // 是否将当前组件与tab绑定
  isBind?: boolean;
  // 是否严格的遵循父子不互相关联的做法
  isCheckStrictly?: boolean;
  showTaskCount?: boolean,
  showUserState?: boolean,
  // 是否显示定位信息
  allotMap?: boolean,
  lat?: string | number,
  lng?: string | number,
  action?: string,
  showTeamCheckbox?: boolean,
  showDeptCheckbox?: boolean,
  CheckDeptshowUser?: boolean, //选中部门显示人
  // 是否 只可见本团队成员
  seeAllOrg?: boolean,
  departShow?: boolean,
  // 是否显示离职人员
  showDeleteUser?: boolean,
  // 是否显示有无角色的人员
  haveRole?: boolean,
  top?: boolean,
  unique?: boolean,
  options?: Record<string, any>
  from?: string,
  typeServiceProvider?: String | Number,
  // 是否效验选中的人有无部门主管 dept 组织架构人员 service 服务商人员
  isJudge?: string,
  // 高级搜索是否添加 无 字段
  isNothing?: boolean,
  // 是否可以删除选中的人
  canDel?: boolean,
  isUserGuide?: boolean,
  isCalendar?: boolean,
  calendarAction?: string,
  calendarSeeAllOrg?: string,
  //邮箱字段
  isNeedEmail?:boolean
  // 是否只显示tag部门
  isShowTag?: boolean,
  // 分配角色添加成员要显示没角色人员
  showNoRole?: boolean,
  authKey?:String | null // 权限标识
}
